<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>静态属性的使用</title>
</head>
<body>
    
</body>
<script>
    // 因为类和构造函数接近 所以都拿构造函数来做对比
    // 静态属性 -- 简单的理解就是构造函数的呃属性 而不是实例化出来对象的属性

    function Web(url){
        this.url = url
    }
    let web = new Web('http://www.baidu.com')
    console.log(web)  //url: "http://www.baidu.com"  这里的url属性是实例化出来对象的属性

    Web.age = '22'
    console.log(web) //url: "http://www.baidu.com"
    console.log(Web.age) //22   这个就是静态属性

    //  类中静态属性的体现
    class User{
        static age = '18'
        constructor(value){
            this.name = value
        }
        getage(){
            return User.age
        }
    }
    let u = new User('jimmy')
    console.log(u)  // name: "jimmy"  只有实例化对象的属性 查找不到原型上面的属性
    console.log(User.age)  // 18   这样就可以获取到

    console.log(u.getage())  // 18

    // 静态属性的使用可以减少我们的代码量  没必要在每一个实例化的对象上面都手动添加属性   我们可以直接引用静态属性上的值  做到牵一发而动全身   需要修改值的时候也不需要每一个都去修改z
</script>
</html>